package com.czk.rdd.operator.transform

import org.apache.spark.{SparkConf, SparkContext}

/**
 * @Author:ChenZhangKun
 * @Date: 2021/12/10 10:32
 */
object Join {
  def main(args: Array[String]): Unit = {
    val sparkConf = new SparkConf().setMaster("local[*]").setAppName("RDD")
    val sc = new SparkContext(sparkConf)

    val rdd1 = sc.makeRDD(List(("a", 1), ("a", 2), ("a", 3), ("a", 4),("b",5)))

    val rdd2= sc.makeRDD(List(("a", 1), ("a", 2), ("a", 3), ("a", 4),("b",5)))
    // 在类型为(K,V)和(K,W)的 RDD 上调用，返回一个相同 key 对应的所有元素连接在一起的
    // 如果key有多个相同的，会以此匹配，呈现笛卡尔乘积
    // 相当于sql的内连接
    val rdd3 = rdd1.join(rdd2)
    rdd3.collect().foreach(println)
  }
}
